Clean up and fix hypercall macros in XenLinux: we must assume that
authorkaf24@firebug.cl.cam.ac.uk <kaf24@firebug.cl.cam.ac.uk>
Fri, 26 Aug 2005 17:42:34 +0000 (17:42 +0000)
committerkaf24@firebug.cl.cam.ac.uk <kaf24@firebug.cl.cam.ac.uk>
Fri, 26 Aug 2005 17:42:34 +0000 (17:42 +0000)
commitedf2226577a60fe13d1a363b24cd54edce6c33f4
tree6451b1e4dd3f52cbf0f863f936e747fca27825d4
parent5946ce59ff6f6678dd23e2fea4a014f1959921bf
Clean up and fix hypercall macros in XenLinux: we must assume that
all register parameters are clobbered on return. Furthermore,
multicall arrays are clobbered on return from a multicall (only the
result field can be trusted!).

These restrictions are enforced by debug builds of Xen in the
following ways:
 1. On completion of a multicall, the call array is overwritten
    with garbage before writing in the result fields.
 2. On completion of a hypercall, all parameter registers are
    overwritten with garbage.

Signed-off-by: Keir Fraser <keir@xensource.com>
linux-2.6-xen-sparse/drivers/xen/privcmd/privcmd.c
linux-2.6-xen-sparse/include/asm-xen/asm-i386/hypercall.h
linux-2.6-xen-sparse/include/asm-xen/asm-x86_64/hypercall.h
xen/arch/x86/x86_32/asm-offsets.c
xen/arch/x86/x86_32/entry.S
xen/arch/x86/x86_64/asm-offsets.c
xen/arch/x86/x86_64/entry.S
xen/common/multicall.c